package nsu.edu.zsq.bean;

import java.util.Date;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.ToString;

/**
 * Description: 学校的专业表
 */
@ToString
public class SchMajor {
    /**
     *  id
     */
    private Integer id;

    /**
     * 专业代码 major_no
     */
    @Excel(name = "专业代码", orderNum = "0")
    @NotBlank(message = "专业代码不可以为空")
    @Length(min=5, max=5, message="专业代码必须是五位数字")
    private String majorNo;

    /**
     * 专业名称 major_name
     */
    @Excel(name = "专业名称", orderNum = "1")
    @NotBlank(message = "专业名称不可以为空")
    @Pattern(regexp="^[\\S]{2,15}$", message="专业名称2-15个字符，且不能出现空格")
    private String majorName;

    /**
     * 所属学校组织的组织id org_id
     */
    @Excel(name = "院系ID", orderNum = "2")
    @NotNull(message = "院系ID不可以为空")
    @Min(value=0, message="院系ID不合法")
    private Integer orgId;

    /**
     * 操作者 operator
     */
    private String operator;

    /**
     * 操作时间 operator_time
     */
    private Date operatorTime;

    /**
     * Get 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * Set 
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Get 专业代码
     * @return major_no 专业代码
     */
    public String getMajorNo() {
        return majorNo;
    }

    /**
     * Set 专业代码
     * @param majorNo 专业代码
     */
    public void setMajorNo(String majorNo) {
        this.majorNo = majorNo == null ? null : majorNo.trim();
    }

    /**
     * Get 专业名称
     * @return major_name 专业名称
     */
    public String getMajorName() {
        return majorName;
    }

    /**
     * Set 专业名称
     * @param majorName 专业名称
     */
    public void setMajorName(String majorName) {
        this.majorName = majorName == null ? null : majorName.trim();
    }

    /**
     * Get 所属学校组织的组织id
     * @return org_id 所属学校组织的组织id
     */
    public Integer getOrgId() {
        return orgId;
    }

    /**
     * Set 所属学校组织的组织id
     * @param orgId 所属学校组织的组织id
     */
    public void setOrgId(Integer orgId) {
        this.orgId = orgId;
    }

    /**
     * Get 操作者
     * @return operator 操作者
     */
    public String getOperator() {
        return operator;
    }

    /**
     * Set 操作者
     * @param operator 操作者
     */
    public void setOperator(String operator) {
        this.operator = operator == null ? null : operator.trim();
    }

    /**
     * Get 操作时间
     * @return operator_time 操作时间
     */
    public Date getOperatorTime() {
        return operatorTime;
    }

    /**
     * Set 操作时间
     * @param operatorTime 操作时间
     */
    public void setOperatorTime(Date operatorTime) {
        this.operatorTime = operatorTime;
    }
}